using System;
using System.Collections.Generic;

namespace TextMenus
{
	public interface IFactory
	{
		ISet<T> GetNewSet<T>();
		ISet<T> GetNewSet<T>(IEnumerable<T> collection);
		IDictionary<TKey, TValue> GetNewDictionary<TKey, TValue>();
		IDictionary<TKey, TValue> GetNewDictionary<TKey, TValue>(IEqualityComparer<TKey> comparer);
		IDictionary<TKey, TValue> GetNewDictionary<TKey, TValue>(IDictionary<TKey, TValue> dict);
		IList<T> GetNewList<T>();
		IList<T> GetNewList<T>(int capacity);
		IList<T> GetNewList<T>(IEnumerable<T> collection);
	}
}

